#ifndef APPLNK_H
#define APPLNK_H

#include <QFileInfo>
#include <QLabel>
#include <QPushButton>
#include <QObject>

class AppLNK : public QPushButton
{
    Q_OBJECT
public:
    AppLNK(const QString &, const QString& lnk_dir, QWidget *parent=nullptr);
    ~AppLNK();
    inline const QString& get_name() const {return lnk_name_;}
    inline QString get_absolute_path() const {return filedir + '/' + canonical_filename;}
    inline const QString& get_absolute_dir() const {return filedir;}
    inline void set_old_x(int x) {old_x = x;}
    void set_size(const int &wd, const int &ht);

private:
    QString lnk_name_;  // 快捷方式名
    QString canonical_filename;  // 原始文件名(带后缀)
    QString filedir;

    int old_x;
    int old_y;
    bool in_hub_;  // 是否是hub中的快捷方式

    QPixmap system_icon;  // 没有自定义图标，获取到的系统默认图标

    double press_x;
    double press_y;
    bool is_clicked;  // 判断本次是不是clicked事件
    bool is_change_index;  // 判断本次是不是改变图标位置
    void mousePressEvent(QMouseEvent *);
    void mouseReleaseEvent(QMouseEvent *);
    void mouseMoveEvent(QMouseEvent *);
    void enterEvent(QEnterEvent *);
    void leaveEvent(QEvent *);

signals:
    void change_index(int, int);
    void left_clicked_me();
    void right_clicked_me();
};

#endif // APPLNK_H
